package com.linkgie.galaxyframework.metadata.structure;

import com.linkgie.galaxyframework.metadata.DataEntity;
import com.linkgie.galaxyframework.metadata.DataField;
import com.linkgie.galaxyframework.metadata.DataInterface;
import com.linkgie.galaxyframework.metadata.DataKey;

@DataInterface
@DataEntity
public class StatePredicateMetadata {

	/**
	 * 状态名；
	 */
	@DataKey
	@DataField(name = "状态名", order = 0)
	private String state;

	/**
	 * 值列表；<p>
	 * 
	 * 采用按值判断状态时有效；
	 */
	@DataField(name = "匹配值", order = 10)
	private Object[] values;

	/**
	 * 取值范围列表；<p>
	 * 
	 * 采用按取值范围判断状态时有效；
	 */
	@DataField(name = "匹配范围", order = 20)
	private ValueRange[] ranges;

	/**
	 * 多个取值范围的逻辑判断运算；<p>
	 * 
	 * 采用按取值范围判断状态时有效；
	 */
	@DataField(name = "多范围匹配运算", order = 21)
	private RangesPredicator rangesPredicator;

	/**
	 * 是否要求空；
	 * <p>
	 * 
	 * 设置为 null 时表示无强制要求；<br>
	 * 设置为 false 时表示要求非空；<br>
	 * 设置为 true 时表示要求为空；<br>
	 * 
	 */
	@DataField(name = "空值匹配", order = 30)
	private EmptyPredicators requireEmpty;
	

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public Object[] getValues() {
		return values;
	}

	public void setValues(Object[] values) {
		this.values = values;
	}

	public ValueRange[] getRanges() {
		return ranges;
	}

	public void setRanges(ValueRange[] ranges) {
		this.ranges = ranges;
	}

	public RangesPredicator getRangesPredicator() {
		return rangesPredicator;
	}

	public void setRangesPredicator(RangesPredicator rangesPredicator) {
		this.rangesPredicator = rangesPredicator;
	}

	public EmptyPredicators getRequireEmpty() {
		return requireEmpty;
	}

	public void setRequireEmpty(EmptyPredicators requireEmpty) {
		this.requireEmpty = requireEmpty;
	}

}
